package com.cn.wanxi.servlet;

import com.alibaba.fastjson.JSONObject;
import com.cn.wanxi.VO.ReusltModel;
import com.cn.wanxi.model.CompanyModel;
import com.cn.wanxi.model.NavModel;
import com.cn.wanxi.model.NewsModel;
import com.cn.wanxi.model.ProductModel;
import com.cn.wanxi.service.CompanyService;
import com.cn.wanxi.service.NavService;
import com.cn.wanxi.service.NewsServcie;
import com.cn.wanxi.service.ProductService;
import com.cn.wanxi.service.impl.CompanyServiceImpl;
import com.cn.wanxi.service.impl.NavServiceImpl;
import com.cn.wanxi.service.impl.NewsServiceImpl;
import com.cn.wanxi.service.impl.ProductServiceImpl;
import com.cn.wanxi.util.HomeEnum;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

/**
 * 六大步骤
 * 1.乱码
 * 2.得到前端数据
 * 3.封装model
 * 4.调用服务逻辑层
 * 5.得到返回的数据
 * 6.返回数据到前端
 */
@WebServlet("/home")
public class HomeServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //     1.乱码处理
        req.setCharacterEncoding("UTF-8");//前端提交数据到后台
        resp.setCharacterEncoding("UTF-8");//后台提交数据到前端

        ReusltModel reusltModel = new ReusltModel();


//   得到产品信息
        ProductService productService = new ProductServiceImpl();
//        对于产品，需要根据产品在不同的页面传递不同的数据
//        1.需要在数据库增加一个字段：where_show;假如：1为首页，2为公司页面，3为产品页面
//        2.判断当前是哪一个菜系
//        3，判断当前是那一页
//        4.判断当前页面显示多少条数据
//        String productWhereShow = req.getParameter("productWhereShow");
//        String productWhereShow = "1";
//        String cuisineId = req.getParameter("cuisineId");
//        String productPage=req.getParameter("productPage");
//        String productPage = "1";
//        String productLimit=req.getParameter("productLimit");
//        String productLimit = "3";
        ProductModel productModel = new ProductModel();
//        以后所有的代码里面不允许出现魔法值：不允许出现具体的常量数据
        productModel.setWhereShow(HomeEnum.PRODUCT_WHERE_SHOW.getData());
//        -1代表取所有数据
        productModel.setCuisineId(HomeEnum.PRODUCT_CUISINE_ID.getData());
        productModel.setPage(HomeEnum.PRODUCT_PAGE.getData());
        productModel.setLimit(HomeEnum.PRODUCT_LIMIT.getData());
        List<ProductModel> productModelList = productService.getProduceModelList(productModel);
        reusltModel.setProductModelList(productModelList);

//        ----------------------------------------------------
//        得到新闻信息
//        1.需要在数据库增加一个字段：where_show;假如：1为首页，2为公司页面，3为产品页面
//        2.判断当前是哪一个新闻板块
//        3，判断当前是那一页
//        4.判断当前页面显示多少条数据
//        String newsWhereShow = req.getParameter("productWhereShow");
//        String newsStyleId = req.getParameter("newsStyleId");
//        String newsPage=req.getParameter("productPage");
//        String newsLimit=req.getParameter("productLimit");
//        String newsPage = "1";
//        String newsLimit = "2";

        NewsServcie newsServcie = new NewsServiceImpl();
        NewsModel newsModel = new NewsModel();
        newsModel.setNewsStyleId(-1);
        newsModel.setPage(1);
        newsModel.setLimit(3);
        newsModel.setWhereShow(1);
        List<NewsModel> newsModelList = newsServcie.getNewsModelList(newsModel);


        resp.getWriter().println(JSONObject.toJSONString(reusltModel));
    }
}
